package com.example.blog.service;

import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.example.blog.dto.AddUserReqDto;
import com.example.blog.dto.QueryUserReqDto;
import com.example.blog.dto.QueryUserResDto;
import com.example.blog.dto.base.IdRequestDto;
import com.example.blog.dto.UpdateUserReqDto;
import com.example.blog.dto.base.LoginReqDto;
import com.example.blog.dto.base.LoginResponseDto;
import com.example.blog.entity.LiveUser;
import com.example.blog.response.ResponseModelDto;
import org.springframework.transaction.annotation.Transactional;

/**
 * @author Admin
 */
public interface LiveUserService {

    /**
     * 添加用户信息
     * @param reqDto
     * @return
     */
    Boolean addUser(AddUserReqDto reqDto);

    /**
     * 修改用户信息
     * @param reqDto
     * @return
     */
    Boolean updateUser(UpdateUserReqDto reqDto);

    /**
     * 删除用户信息
     * @param requestDto
     * @return
     */
    Boolean deleteUser(IdRequestDto requestDto);

    /**
     * 分页查询用户列表
     * @param reqDto
     * @return
     */
    IPage<QueryUserResDto> selectUser(QueryUserReqDto reqDto);

    /**
     * 启用禁用用户
     * @param requestDto
     * @return
     */
    Boolean changeUserStatus(IdRequestDto requestDto);

    /**
     * 登录
     * @param reqDto
     * @return
     */
    ResponseModelDto<LoginResponseDto> login(LoginReqDto reqDto);

    /**
     * 是否管理员
     * @param userId
     * @return
     */
    Boolean administrator(String userId);

    /**
     * 通过id查询用户信息
     * @param userId
     * @return
     */
    LiveUser selectUserById(String userId);

}
